This file contains my notes to QC programmers which intend to use KasCam in their own QC patches ------------------------------------------------------------------------------- VERSION 1.7 WARNING: hooking points have changed again!!! You HAVE TO revise them if you upgrade your patch from previous version. Three changes there. VERSION 1.6 WARNING: hooking points have changed again! Well, it was my fault that I didn't change them properly in 1.5 :-( VERSION 1.5 WARNING: hooking points have changed! If you update your patch using KasCam 1.0 you have to review all hooking points. I have cleaned DEFS.QC also - it is just original now. The only thing I used from DMCAM and QCAM is hooking method and some initialization. Everything else is brand new. CTF was digged for multi-string CENTERPRINT. It is nice, check it out :-) The camera AI is in KASCAM.QC. Hooking points are in CLIENT.QC, WEAPONS.QC and WORLD.QC marked by 'KasCam' keyword. PROGS.SRC is also changed. I decided to include all QC's, however. Marked areas can not be always simply removed. They may contain some original functional code. Keywords only mark places that are 'messed with'. I made comments every time I wasn't sure what I am really doing. So it is possible that the most important parts are not commented at all... Sorry. V1.06 sources were used. I also removed all the bugs known to me ('cells' bug and 'fishes' bug). These changes are not marked. I wanted to keep hooking points at the lowest possible count. So the "copy status" sequence is performed every frame. I didn't notice any slowdown. I don't know how to set "looking angle" more accurately than in 256 steps per full circle resulting in "skipping" view. It seems that resulting demos sometimes don't have this problem though. There are problems with traceline function. trace_endpos ends in void space sometimes so this point has also to be tested using pointcontents :-( Water, sky, teleports and lava are a serious problem - they don't stop traceline. If anybody knows how to find contents change (binary division is not interesting method)... I don't know how to make reports 'only for camera'. sprint(self,...) function did serious problems so I used bprint.